/* Copyright 2021 Shulin Huang <mumu@x-bows.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 #include "ranger.h"
 #ifdef RGB_MATRIX_ENABLE
 const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {

 	{0, C3_3,  C2_3, C1_3},   // L01
 	{0, C3_4,  C2_4, C1_4},   // L02
 	{0, C3_5,  C2_5, C1_5},   // L03
 	{0, C3_6,  C2_6, C1_6},   // L04
 	{0, C3_7,  C2_7, C1_7},   // L05
 	{0, C3_8,  C2_8, C1_8},   // L06
 	{1, C3_3,  C2_3, C1_3},   // L07
 	{1, C3_4,  C2_4, C1_4},   // L08
 	{1, C3_5,  C2_5, C1_5},   // L09
 	{1, C3_6,  C2_6, C1_6},   // L10
 	{1, C3_7,  C2_7, C1_7},   // L11
 	{1, C3_8,  C2_8, C1_8},   // L12
 	{2, C3_4,  C2_4, C1_4},   // L13
 	{2, C3_5,  C2_5, C1_5},   // L14
 	{2, C3_6,  C2_6, C1_6},   // L15
 	{2, C3_7,  C2_7, C1_7},   // L16

 	{0, C6_1,  C5_1, C4_1},   // L17
 	{0, C6_2,  C5_2, C4_2},   // L18
 	{0, C6_3,  C5_3, C4_3},   // L19
 	{0, C6_6,  C5_6, C4_6},   // L20
 	{0, C6_7,  C5_7, C4_7},   // L21
 	{0, C6_8,  C5_8, C4_8},   // L22
 	{1, C6_1,  C5_1, C4_1},   // L23
 	{1, C6_2,  C5_2, C4_2},   // L24
 	{1, C6_3,  C5_3, C4_3},   // L25
 	{1, C6_6,  C5_6, C4_6},   // L26
 	{1, C6_7,  C5_7, C4_7},   // L27
 	{1, C6_8,  C5_8, C4_8},   // L28
 	{2, C6_1,  C5_1, C4_1},   // L29
 	{2, C6_3,  C5_3, C4_3},   // L31
 	{2, C6_6,  C5_6, C4_6},   // L32
 	{2, C6_7,  C5_7, C4_7},   // L33

 	{0, C9_1,  C8_1, C7_1},   // L34
 	{0, C9_2,  C8_2, C7_2},   // L35
 	{0, C9_3,  C8_3, C7_3},   // L36
 	{0, C9_4,  C8_4, C7_4},   // L37
 	{0, C9_5,  C8_5, C7_5},   // L38
 	{0, C9_6,  C8_6, C7_6},   // L39
 	{1, C9_1,  C8_1, C7_1},   // L40
 	{1, C9_2,  C8_2, C7_2},   // L41
 	{1, C9_3,  C8_3, C7_3},   // L42
 	{1, C9_4,  C8_4, C7_4},   // L43
 	{1, C9_5,  C8_5, C7_5},   // L44
 	{1, C9_6,  C8_6, C7_6},   // L45
 	{2, C9_1,  C8_1, C7_1},   // L46
 	{2, C9_3,  C8_3, C7_3},   // L48
 	{2, C9_4,  C8_4, C7_4},   // L49
 	{2, C9_6,  C8_6, C7_6},   // L50

 	{0, C3_11,  C2_11, C1_11},   // L51
 	{0, C3_12,  C2_12, C1_12},   // L52
 	{0, C3_13,  C2_13, C1_13},   // L53
 	{0, C3_14,  C2_14, C1_14},   // L54
 	{0, C3_15,  C2_15, C1_15},   // L55
 	{0, C3_16,  C2_16, C1_16},   // L56
 	{1, C3_11,  C2_11, C1_11},   // L57
 	{1, C3_12,  C2_12, C1_12},   // L58
 	{1, C3_13,  C2_13, C1_13},   // L59
 	{1, C3_14,  C2_14, C1_14},   // L60
 	{1, C3_15,  C2_15, C1_15},   // L61
 	{1, C3_16,  C2_16, C1_16},   // L62
 	{2, C3_14,  C2_14, C1_14},   // L63
 	{2, C6_2,   C5_2,  C4_2 },   // L30

 	{0, C6_9,   C5_9,  C4_9},    // L64
 	{0, C6_10,  C5_10, C4_10},   // L65
 	{0, C6_11,  C5_11, C4_11},   // L66
 	{0, C6_14,  C5_14, C4_14},   // L67
 	{0, C6_15,  C5_15, C4_15},   // L68
 	{0, C6_16,  C5_16, C4_16},   // L69
 	{1, C6_10,  C5_10, C4_10},   // L70
 	{1, C6_11,  C5_11, C4_11},   // L71
 	{1, C6_14,  C5_14, C4_14},   // L72
 	{1, C6_15,  C5_15, C4_15},   // L73
 	{1, C6_16,  C5_16, C4_16},   // L74
 	{2, C3_15,  C2_15, C1_15},   // L75
 	{2, C9_2,   C8_2,  C7_2 },   // L47
 	{2, C9_14,  C8_14, C7_14},   // L76

 	{0, C9_9,   C8_9,  C7_9},    // L77
 	{0, C9_10,  C8_10, C7_10},   // L78
 	{0, C9_11,  C8_11, C7_11},   // L79
 	{1, C6_9,   C5_9,  C4_9},    // L80
 	{1, C9_13,  C8_13, C7_13},   // L81
 	{1, C9_14,  C8_14, C7_14},   // L82
 	{2, C9_9,   C8_9,  C7_9},    // L83
 	{2, C9_10,  C8_10, C7_10},   // L84
 	{2, C9_11,  C8_11, C7_11},   // L85
 	{2, C9_12,  C8_12, C7_12},   // L86
 	{2, C9_13,  C8_13, C7_13},   // L87

 };

 led_config_t g_led_config = { {
     {  0,      1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13,     14,     15      },
     {  16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31      },
     {  32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47      },
     {  48,     49,     50,     51,     52,     53,     54,     55,     56,     57,     58,     59,     60,     61,   NO_LED,   NO_LED  },
     {  62,     63,     64,     65,     66,     67,     68,     69,     70,     71,     72,   NO_LED,   73,     74,     75,     NO_LED },
     {  76,     77,     78,   NO_LED, NO_LED,   79,   NO_LED, NO_LED, NO_LED,   80,     81,     82,     83,     84,     85,     86     }
 }, {
 		{0,0},  {24,0},  {36,0},  {48,0},  {60,0},  {78,0},  {90,0},   {102,0},  {114,0},  {132,0},  {144,0},  {156,0},  {168,0},  {182,0},  {194,0}, {206,0},
 		{0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15},  {84,15},  {96,15},  {108,15}, {120,15}, {132,15}, {144,15}, {182,15}, {194,15},{206,15},
 		{3,27}, {18,27}, {30,27}, {42,27}, {54,27}, {66,27}, {78,27},  {90,27},  {102,27}, {114,27}, {126,27}, {138,27}, {150,27}, {182,27}, {194,27},{206,27},
 		{4,39}, {20,39}, {32,39}, {44,39}, {56,39}, {68,39}, {80,39},  {92,39},  {104,39}, {116,39}, {128,39}, {140,39}, {162,39}, {162,15},
 		{6,51}, {26,51}, {38,51}, {50,51}, {62,51}, {74,51}, {86,51},  {98,51},  {110,51}, {122,51}, {134,51}, {155,51}, {165,27}, {210,51},
 		{1,63}, {16,63}, {31,63}, {64,63}, {121,63},{136,63}, {151,63}, {166,63},{182,63}, {194,63}, {206,63}
 }, {
     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
 } };


 __attribute__ ((weak)) void rgb_matrix_indicators_user(void) {
    if (host_keyboard_led_state().caps_lock) {
        rgb_matrix_set_color(48, 0xFF, 0xFF, 0xFF);
    }
}

#endif
